package com.cn.serverline.lineicp.workshopPlan.entity;

import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.sql.Timestamp;

/**
 * 车间下发周计划任务明细
 *
 * @author 田江余
 * @since 2024年8月7日
 */
@TableName("PLAN_WEEK_STAGE_DAYS_TASKS")
@Data
@EqualsAndHashCode
public class WeekStageDaysTasks extends BaseEntity{

    /**
     * 主键ID
     */
    @ChineseDescription("主键ID")
    @TableId(value = "ID", type = IdType.ASSIGN_ID)
    @JsonSerialize(using= ToStringSerializer.class)
    private Long id;

    /**
     * 工段ID
     */
    @ChineseDescription("工段ID")
    @TableField("PLAN_WORK_SECTION_ID")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long planWorkSectionId;

    /**
     * 产品构型ID
     */
    @ChineseDescription("产品构型ID")
    @TableField("PROD_CONFIGURATION_ID")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long prodConfigurationId;

    /**
     * 周计划下发历史ID
     */
    @ChineseDescription("周计划下发历史ID")
    @TableField("PLAN_WEEK_STAGE_DAYS_HISTORY_I")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long planWeekStageDaysHistoryI;

    /**
     * 父ID
     */
    @ChineseDescription("父ID")
    @TableField("PARENT_ID")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long parentId;

    /**
     * 下发
     */
    @ChineseDescription("下发")
    @TableField("DISTRIBUTE")
    private String distribute;


    /**
     * 周计划下发到产线的阶段字典
     */
    @ChineseDescription("周计划下发到产线的阶段字典")
    @TableField("WEEK_STAGE_CODE")
    private String weekStageCode;


    /**
     * 叫料次数
     */
    @ChineseDescription("叫料次数")
    @TableField("CALL_MATERIAL_NUMBER")
    private String callMaterialNumber;

    /**
     * 产品型号名
     */
    @ChineseDescription("产品型号名")
    @TableField("PROD_CONFIGURATION_NAME")
    private String prodConfigurationName;

    /**
     * 批次号
     */
    @ChineseDescription("批次号")
    @TableField("LOT_NO")
    private String lotNo;

    /**
     * 计划数量
     */
    @ChineseDescription("计划数量")
    @TableField("PLAN_QUANTITY")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long planQuantity;

    /**
     * 年份
     */
    @ChineseDescription("年份")
    @TableField("YEAR")
    private Long year;

    /**
     * 月份
     */
    @ChineseDescription("月份")
    @TableField("MONTH")
    private Long month;

    /**
     * 拆分状态
     */
    @ChineseDescription("拆分状态")
    @TableField("SPLIT_STATUS")
    private Long splitStatus;

    /**
     * 开始日期
     */
    @ChineseDescription("开始日期")
    @TableField("START_DATE")
    private Timestamp startDate;

    /**
     * 结束日期
     */
    @ChineseDescription("结束日期")
    @TableField("END_DATE")
    private Timestamp endDate;

    /**
     * 乐观锁
     */
    @ChineseDescription("乐观锁")
    @TableField("VERSION")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long version;

    /**
     * 备注
     */
    @ChineseDescription("备注")
    @TableField("REMARK")
    private String remark;


    /**
     * 执行状态
     */
    @ChineseDescription("执行状态")
    @TableField("EXECUTION_STATUS")
    private Long executionStatus;
}
